package com.netas.kekmanager.dao;
import com.netas.kekmanager.dao.model.Tag;
import com.netas.kekmanager.dao.model.TagPk;
import com.netas.kekmanager.dao.exceptions.TagDaoException;
import java.util.List;

public interface TagDao
{
	/**
	 * Method 'insert'
	 * 
	 * @param dto
	 * @return TagPk
	 */
	public TagPk insert(Tag dto);

	/** 
	 * Updates a single row in the tag table.
	 */
	public void update(TagPk pk, Tag dto) throws TagDaoException;

	/** 
	 * Deletes a single row in the tag table.
	 */
	public void delete(TagPk pk) throws TagDaoException;

	/** 
	 * Returns all rows from the tag table that match the criteria 'id = :id'.
	 */
	public Tag findByPrimaryKey(int id) throws TagDaoException;

	/** 
	 * Returns all rows from the tag table that match the criteria ''.
	 */
	public List<Tag> findAll() throws TagDaoException;

	/** 
	 * Returns all rows from the tag table that match the criteria 'tag_type_id = :tagTypeId'.
	 */
	public List<Tag> findByTagType(int tagTypeId) throws TagDaoException;

	/** 
	 * Returns all rows from the tag table that match the criteria 'web_resource_id = :webResourceId'.
	 */
	public List<Tag> findByWebResource(int webResourceId) throws TagDaoException;

	/** 
	 * Returns all rows from the tag table that match the criteria 'id = :id'.
	 */
	public List<Tag> findWhereIdEquals(int id) throws TagDaoException;

	/** 
	 * Returns all rows from the tag table that match the criteria 'web_resource_id = :webResourceId'.
	 */
	public List<Tag> findWhereWebResourceIdEquals(int webResourceId) throws TagDaoException;

	/** 
	 * Returns all rows from the tag table that match the criteria 'tag_type_id = :tagTypeId'.
	 */
	public List<Tag> findWhereTagTypeIdEquals(int tagTypeId) throws TagDaoException;

	/** 
	 * Returns the rows from the tag table that matches the specified primary-key value.
	 */
	public Tag findByPrimaryKey(TagPk pk) throws TagDaoException;

}
